#include "xpub_proxy.h"
#include <iostream>
#include <string>

XPubProxy::XPubProxy(const std::string& frontend_address, const std::string& backend_address) {
    context = zmq::context_t();
    frontend = zmq::socket_t(context, zmq::socket_type::xpub); // 创建XPUB类型的套接字
    backend = zmq::socket_t(context, zmq::socket_type::xsub); // 创建XSUB类型的套接字
    frontend.bind(frontend_address); // 绑定前端地址
    backend.bind(backend_address); // 绑定后端地址
}

void XPubProxy::run() {
    std::cout << "XPubProxy is running..." << std::endl;
    zmq::proxy(static_cast<void*>(frontend), static_cast<void*>(backend), nullptr);  // 使用zmq::proxy()函数进行代理
}